#ifndef DOXYCLASS_H
#define DOXYCLASS_H

#include "Inheritance.h"
#include "IDoxyClass.h"
#include <QtCore>
#include <QtXml>
#include "IDoxyMemberDef.h"

class DoxyClass : public IDoxyClass
{
public:

    DoxyClass(QString RefId);

    bool loadFile();


    /**
     * @brief getClassDescription Gets the description of the class
     * @return
     */
    virtual QString getClassDescription() const;

    virtual QString getClassName() const ;


private:
    QString m_xmlFileName;
    QString m_refId;

    QString m_className;

    QList<Inheritance> m_baseClasses; // classes that are inherited by this class
    QList<Inheritance> m_derivedClasses; // classes that derive from this class
    QList<RefItem> m_localIncludes; // get the local includes of the class
    QList<RefItem> m_externalIncludes; // get the external includes of the class

    QString m_briefDescription;
    QString m_detailedDescription;
    QString m_descriptionLocation;
    QString m_definitionLocation;

    Inheritance loadInheritence(const QDomElement& element);

    IDoxyMemeberDef* loadSectionDef(const QDomElement& element);
};

#endif // DOXYCLASS_H
